理解C语言取地址符& 您所在的位置:网站首页 c语言 地址 理解C语言取地址符&

理解C语言取地址符&

2023-07-18 17:34| 来源: 网络整理| 查看: 265

&的两个常用地方

C语言取地址符&的有两个常用的地方。 一个是,为指针变量赋值的时候

int m = 214; int *i = &m;

第二个是,在函数的形式参数中出现在形参变量的前面

void func(int* &i) { } 概念混淆

上述第一个概念,比较明确,取地址赋给指针型变量。 但是在学习数据结构写算法的时候,常会用到上面第二种情况,当指针类型和&符号在一起使用的时候,我变得很迷茫,一时搞不清这个符号到底是什么意思,实参该传什么呢? 指针变量还是取地址?

理解

实际上,当&在形参中出现的时候,只是表明这个函数的参数是引用传递而已(不必纠结它的取地址符含义)。同时在实际传参的时候,该传什么类型还是传什么类型。之所以,产生混淆,就是因为*和&同时出现在了参数列表中,没有理解指针其实不过也是一种特殊的类型而已, &只是用来表明这是一次引用传递。

引用传递和非引用传递的一个区别: 引用传递的时候,函数调用时的实参可以不用初始化。但是非引用传递的时候,实参必须初始化,否则在运行时会报错。

void func (int &i) { } func(214); // 形参中的&表明是一次引用传递。参数类型是整形 void func(int * &i) { } int * i; func(i); // 参数类型是指针型而已。 传入的参数也应该是指针类型,可以不用初始化 void func(int * i) { } int *i; func(i); // 运行时报错!!(根据形参形式,表明非引用传递,函数调用时,变量需要提前初始化。)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有